/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.diplomka.datalayer.dao;

import cz.muni.fi.diplomka.datalayer.entity.CityResourcesEntity;
import cz.fi.muni.diplomka.common.enumeration.ResourceType;
import java.util.List;

/**
 * Interface for manipulation with City Resources Entity
 *
 * @author Jakub Kutil
 */
public interface CityResourcesDao {

    /**
     * Adds Resources in City to DB
     *
     * @param resourcesInCityEntity Resources in City to add
     */
    public void addResourcesInCity(CityResourcesEntity resourcesInCityEntity);

    /**
     * Edits Resources in City in DB
     *
     * @param resourcesInCityEntity Resources in City to edit
     */
    public void editResourcesInCity(CityResourcesEntity resourcesInCityEntity);

    /**
     * Get all Resources of specified City
     *
     * @param cityId ID of City
     *
     * @return List of all Resources in City
     */
    public List<CityResourcesEntity> getAllResourcesInCityOfPlayer(Long cityId);

    /**
     * Gets count of specified Resource in specified City
     *
     * @param cityId ID of City
     * @param resourceType type of selected Resource
     *
     * @return count of specified Resource
     */
    public int getAllSpecificResourcesCountInCityOfPlayer(Long cityId, ResourceType resourceType);
}
